package com.dhj.jvmstudy.chapter07;

import java.io.BufferedReader;
import java.io.FileReader;

/**
 * 字符串常量池大小修改
 * <p>
 * jdk6：-XX:StringTableSize=1009，且是固定的不能修改。
 * jdk7：-XX:StringTableSize=60013，可修改。
 * jdk8及以后：-XX:StringTableSize=60013，可修改，且1009为最小值。
 */
public class StringTest2 {

    public static void main(String[] args) throws Exception {
        //System.out.println("我来打个酱油");
        //Thread.sleep(1000000);

        BufferedReader br = null;
        try {
            br = new BufferedReader(new FileReader("words.txt"));
            long start = System.currentTimeMillis();
            String data;
            while ((data = br.readLine()) != null) {
                data.intern(); // 如果字符串常量池中没有data对应的字符串的话，则在常量池中生成
            }
            long end = System.currentTimeMillis();

            /**
             * -XX:StringTableSize=1009   143ms
             * -XX:StringTableSize=60013   49ms
             */
            System.out.println("耗时：" + (end - start));
        } catch (Exception e) {
            e.printStackTrace();
        }

    }

}
